#include "implementacioninterprete.h"
#include "interprete.h"
#include "parser.h"
#include <string>
#include <iostream>

using std::string;
using std::cout;

using namespace std;

int testInterprete()
{
	//creo un objeto interprete
	interprete *i = new implementacionInterprete();
     string palabra = "sarasa";
     bool s = i->esStopWord(palabra);
     if(!s){
       printf("la palabra %s no es stopword\n",palabra.c_str());	
     }
     else{
      printf("la palabra %s es stopword\n",palabra.c_str());		
     }
   	 s = i->esStemming(palabra);
   	 if(!s){
       printf("la palabra %s no es stemming\n",palabra.c_str());	
     }
     else{
      printf("la palabra %s es stemming\n",palabra.c_str());		
     }
      	 
   	 palabra = "poco";
     s = i->esStopWord(palabra);
      if(!s){
       printf("la palabra %s no es stopword\n",palabra.c_str());	
     }
     else{
      printf("la palabra %s es stopword\n",palabra.c_str());		
     }
     s = i->esStemming(palabra);
     if(!s){
       printf("la palabra %s no es stemming\n",palabra.c_str());	
     }
     else{
      printf("la palabra %s es stemming\n",palabra.c_str());		
     }
   	 palabra = "cambiaba";
    
     s = i->esStopWord(palabra);
      if(!s){
       printf("la palabra %s no es stopword\n",palabra.c_str());	
     }
     else{
      printf("la palabra %s es stopword\n",palabra.c_str());		
     }
     s = i->esStemming(palabra);
      if(!s){
       printf("la palabra %s no es stemming\n",palabra.c_str());	
     }
     else{
      printf("la palabra %s es stemming\n",palabra.c_str());		
     }
   	 
   	 
     
	//me fijo si hay nuevos archivos que interpretar
	if(i->verificarArchivosNuevos()){
		printf("Hay documentos nuevos para interpretar\n");
		i->interpretarNuevosDocumentos(NULL, 0);
		printf("Fin del interprete de nuevos Documentos\n");

		int id=0;
		while(id!=-1){
			printf("Obtengo el proximo a id a procesar\n");
			id = i->obtenerProximoIDAProcesar();
			printf("Obtuve el id:%d\n",id);

			FILE* archivo = NULL;
			if(id!=-1){
				printf("Obtengo el documento segun el id\n");
				archivo = i->obtenerDocumentoHash(id);

				if(archivo){
					printf("Abri el archivo TXT PROCESADO con id:%d\n",id);     
					fclose(archivo);
					archivo = NULL;
				}
				else{
					printf("no pude abrir el archivo TXT PROCESADO con id:%d\n",id);
				}
				
				archivo = i->obtenerDocumentoOriginalTxt(id);
				if(archivo){
					printf("Abri el archivo ORIGINAL TXT con id:%d\n",id);     
					fclose(archivo);
					archivo = NULL;
				}
				else{
					printf("no pude abrir el archivo ORIGINAL TXT con id:%d\n",id);
				}
				
				archivo = i->obtenerDocumentoPDF(id);
				if(archivo){
					printf("Abri el archivo ORIGINAL PDF con id:%d\n",id);     
					fclose(archivo);
					archivo = NULL;
				}
				else{
					printf("no pude abrir el archivo ORIGINAL PDF con id:%d\n",id);
				}
				
			}		
		}
	}
	else{
		cout << "No hay nuevos documentos para interpretar"<<endl;
	}

	//ahora pruebo el filtro de frases
    printf("Nene...a mi me gusta tanto la noche...que al día le pondría un toldo\n");
	printf("%s\n",i->aplicarFiltro("Nene...a mi me gusta tanto la noche...que al día le pondría un toldo").c_str());
	
	printf("Este pibe es un fenómeno, te hace un asado debajo del agua\n");
	printf("%s\n",i->aplicarFiltro("Este pibe es un fenómeno, te hace un asado debajo del agua").c_str());
	
    printf("Yo tenia pique corto, tenia pegada, tenia quite, tenia cabezazo,Porque no fui crack?.. Es que trassssnochaba\n");
	printf("%s\n",i->aplicarFiltro("Yo tenia pique corto, tenia pegada, tenia quite, tenia cabezazo,Porque no fui crack?.. Es que trassssnochaba").c_str());
		
	//finalizado esto, borro el interprete
	delete(i);
	
	return 1;
}



